package com.data.migration.service;

import com.data.migration.entity.Operation;
import com.data.migration.util.DBUtil;
import com.data.migration.vo.StudentVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by Peter on 2018/12/8.
 * 迁移1v1课程数据
 */
public class Step_2_Member {
    public static final String step = "2";
    public static final String stepDesc = "学生";

    private static final Logger logger = LoggerFactory.getLogger(Step_2_Member.class);
    public List<StudentVo> students = new ArrayList<>();

    public static void main(String[] args) throws SQLException {
        Step_2_Member step_2Member = new Step_2_Member();
        // 1. 学生【td_nt_member】
        step_2Member.start();
//        step_2Member.clean();

    }

    public void start() throws SQLException {
        logger.info("\n******************************************************************************" +
                "\n======================== Step 2: 迁移学生 start ================================" +
                "\n******************************************************************************\n");
        // 1. 学生【td_nt_member】
        step_1();
        logger.info("\n******************************************************************************" +
                "\n======================== Step 2: 迁移学生 end ================================" +
                "\n******************************************************************************\n");
    }

    public void clean() throws SQLException {
        logger.info("\n******************************************************************************" +
                "\n======================== 【clean】 Step 2: 迁移学生 start =========================" +
                "\n******************************************************************************");
        // 1. 学生【td_nt_member】
        step_1_clean();
        logger.info("\n******************************************************************************" +
                "\n======================== 【clean】 Step 2: 迁移学生 end =========================" +
                "\n******************************************************************************");
    }


    // 1. 学生【td_nt_member】     ------------------------------------------------------------------------------1
    public void step_1() throws SQLException {
        logger.info("\n     --------- 2.1 学生【td_nt_member】 start --------- ");
        // 查询出青少版所有的学生
        Connection conn = DBUtil.getConn(Operation.app_type_T);
        String tableName = "td_nt_member"; // 表名
        String pk = "MEMB_ID"; // 主键（自增）的列名字
        students = DBUtil.buildInsertSqlForStudent(conn, tableName, pk);

        // 更新或插入（如果A版有账号就更新，否则插入）
        DBUtil.migrationForStudent(students);
    }

    public void step_1_clean() throws SQLException {
        logger.info("\n     ---------【clean】 2.1 学生【td_nt_member】 start --------- ");
        // 1. 删除新添加的学生
        String sql = "delete from td_nt_member where app_type='T'";
        Connection conn = DBUtil.getConn(Operation.app_type_A);
        DBUtil.executeUpdate(conn, sql);

        // 2. 已有账号的回复余额，设置t_id为NULL
        String updateSql = "update td_nt_member set MEMB_BALANCE = memb_balance - t_memb_balance, t_id=NULL,t_memb_balance=0 where t_id is not NULL";
        DBUtil.executeUpdate(conn, updateSql);

    }

}
